Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue number:
N/A
Description of changes:
Mounting
/usr/share/licenses
and/usr/src/kernels
can add up to one second of delay before reachinglocal-fs.target
.It's not necessary to read software licenses or build out-of-tree kernel modules at this stage in the boot process. Moving the mounts after
local-fs.target
doesn't eliminate the delay, but does allow the system to do other useful work in parallel, like acquiring DHCP leases and applying settings.Testing done:
I verified that
link-kernel-modules.service
andload-kernel-modules
run correctly on theaws-k8s-1.22-nvidia
variant.It's difficult to quantify the actual benefit of this since it can vary widely, and depends on other factors like the amount of console logging and whether the wrong kernel thread gets "stuck" flushing to the console when these messages are printed:
Instead I'll just point to the actual mount unit times:
These are consistently the two slowest mounts, and intuitively it is preferable to deal with slow mounts later in boot if possible, to avoid unlucky sequences where the system stalls for 300 ms before reaching
local-fs.target
.Terms of contribution:
By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.